function compileMapContainer(self)
{	
    self.MapContainer = Class.create(Container,
    {
    	/**
    	 * Constructor.
    	 * 
    	 * @param range The range of coordinates specifying the size of the container.
    	 * @param hidden Whether or not the page is initially hidden.
         * @param containerDivId The entire map container.
         * @param disabledContainerDivId The disabled container.
    	 * @param searchDivId The search input area.
    	 * @param canvasDivId The canvas onto which the map is drawn.
    	 * @param textInfoDivId The text info area.
    	 * @param location google.maps.LatLng.
         * @param zoom Zoom level
         * @param mapTypeId Type of map, e.g.: google.maps.MapTypeId.ROADMAP
         * @param title The title of the marker.
         * @param markerText The text to display above the marker.
         * @param infoText The text to display in the info area.
    	 */
    	initialize: function($super, range, hidden, containerDivId, disabledContainerDivId, searchDivId, canvasDivId, textInfoDivId, location, zoom,
    	   mapTypeId, title, markerText, infoText)
        {
        	// Invoke super class.
        	$super(range, hidden, containerDivId, disabledContainerDivId);
        	
        	// Set properties.
        	this.searchDiv = jQuery('#' + searchDivId);
        	this.canvasDiv = jQuery('#' + canvasDivId);
        	this.textInfoDiv = jQuery('#' + textInfoDivId);
        	this.map = new Map(this.canvasDiv[0], location, zoom, mapTypeId, title, markerText);
        	if (infoText)
        	{
        		this.textInfoDiv.html(infoText);
        		this.textInfoDiv.show();
        	}
        	else
        	{
        		this.textInfoDiv.css('font-size', 0); // Nasty IE hack.
        		this.textInfoDiv.hide();
        	}
        	
        	// Setup display.
        	this.setDimensions(range);
        },
        
        /**
         * Sets the dimensions of the container.
         * 
         * @param range The range of coords.
         */
        setDimensions: function($super, range)
        {
        	// Invoke overridden method.
        	$super(range);
        	
        	// Setup inner containers.
        	var searchHeight = this.searchDiv.height();
        	var infoHeight = this.textInfoDiv.height();
        	this.canvasDiv.height(range.height() - (searchHeight+infoHeight));
        }
    });
}